TreeGridLoaded ({ /* JSONP header, to be possible to load from xxx_Jsonp data source */ 
   "Cfg" : { "id": "Events", "NoVScroll": "1", "NoHScroll": "1", "IdChars": "0123456789", "NumberId": "1", "CopyPasteRows": "2"   }, 
   "Cols" : [ 
      { "Name": "id", "Type": "Int", "CanEdit": "0", "CanSort": "0"   }, 
      { "Name": "MENU"   }, 
      { "Name": "TIP"   }, 
      { "Name": "HINT", "Width": "170"   }, 
      { "Name": "CUST", "WidthPad": "40", "VarHeight": "2"   }  
   ], 
   "Body" : [ 
      [ 
         { "id": "1", 
            "MENU": "API OnContextMenu", "MENUMenu": "|Clear|Edit|Auto", 
            "TIP": "Standard tip", "TIPTip": "This is standard static tooltip under mouse<br>The tip can be on more lines", 
            "HINT": "Hint is shown for overflowed cell value", 
            "CUSTType": "Date", "CUST": "12/31/2000", "CUSTOnClickSideDate": "return ShowHtmlDialog(Grid,Row,Col,Event.AbsX,Event.AbsY)", "CUSTTip": "Custom html dialog"  
             }, 
         { "id": "2", 
            "MENU": "Menu OnSave", "MENUMenu": {Items:"|Clear|Edit|Auto",OnSave:function(I){
               var G = this.Grid, row = this.Row, col = this.Col;
               if(I.Name=="Clear") G.SetValue(row,col,"",1);
               if(I.Name=="Edit") G.Prompt("Enter new value",G.GetString(row,col),function (val){ if(val!=null) G.SetString(row,col,val,1); } );
               if(I.Name=="Auto") G.SetValue(row,col,"Menu OnSave",1); 
               }}, 
            "TIP": "Position and Class", "TIPTip": "Tooltip on different position and with different CSS class", "TIPTipPosition": "{Align:\"left above\",Y:-10,Mouse:1}", "TIPTipClass": "Red", 
            "HINT": "Hint is shown also for vertically overflowed cell value", "HINTType": "Lines", "MaxHeight": "20", 
            "CUST": "Custom menu", "CUSTButton": "Button", "CUSTButtonText": "Click", "CUSTOnClickSideButton": "return ShowCustomMenu(Grid,Row,Col)", "CUSTTip": "Custom menu using TreeGrid JSON menu"  
             }, 
         { "id": "3", 
            "MENU": "Menu item OnClick", "MENUMenu": {Items:[
               { Name:"Clear", Text:"Clear value", OnClick:function(){ this.Owner.Grid.SetValue(this.Owner.Row,this.Owner.Col,"",1); } },
               { Name:"Edit", Text:"Edit value", OnClick:function(){ var G = this.Owner.Grid, row = this.Owner.Row, col = this.Owner.Col; G.Prompt("Enter new value",G.GetString(row,col),function (val){ if(val!=null) G.SetString(row,col,val,1); } ); } },
               { Name:"Auto", Text:"Set original value", OnClick:function(){ this.Owner.Grid.SetValue(this.Owner.Row,this.Owner.Col,"Menu item OnClick",1); } }
               ]}, 
            "TIP": "Tip showing cell value", "TIPTip": "1", 
            "HINT": "This cell does not show hint", "HINTShowHint": "0", 
            "CUST": "Custom dialog", "CUSTIcon": "Defaults", "CUSTOnClickSideDefaults": "return ShowCustomDialog(Grid,Row,Col)", "CUSTTip": "Custom dialog using TreeGrid JSON dialog"  
             }, 
         { "id": "4", 
            "MENU": "Custom API OnRightClick", 
            "TIP": "Dynamic tip", 
            "HINT": "Dynamic hint by OnHint API event", 
            "CUSTType": "Html", "CUST": "2005-09-01", "CUSTButton": "Date", "CUSTOnClickSideDate": "ShowCustomCalendar(Grid,Row,Col)", "CUSTTip": "Custom calendar using TreeGrid JSON calendar"  
             }, 
         { "id": "5", 
            "TIP": "Tip for cell parts", "TIPIcon": "Green.svg", "TIPButton": "Red.svg", "TIPTip": "Tip for the cell text", "TIPSideIconTip": "Tip for the left icon", "TIPSideButtonTip": "Tip for the right button", 
            "CUSTType": "Html", "CUST": "Custom popup grid", "CUSTButton": "Enum", "CUSTOnClickSideEnum": "Focus,ShowCustomGrid(Grid,Row,Col)", "CUSTTip": "Custom popup grid"  
             }  
      ], 
   ], 
   "Header" : { "id": "id", "MENU": "Right click Menu", "TIP": "Tip", "HINT": "Hint", "CUST": "Custom dialogs"   }, 
}) /* End of JSONP header */ 